const express = require('express');
// 导入 moment
const moment = require('moment');
// 导入文档对象
const AccountModel = require('../../models/AccountModel');
// 导入中间件
const checkLoginMiddleware = require('../../middlewares/checkloginmiddlewares')

// 创建路由对象
const router = express.Router();

// 添加首页的路由规则
router.get('/', (req, res) => {
  res.redirect('/account')
})

// 记账本的列表
router.get('/account', checkLoginMiddleware, async (req, res, next) => {
  // 获取所有账单信息
  // let accounts = db.get('accounts').value()
  // 读取集合信息
  let accounts = await AccountModel.find().sort({ time: -1 })
  // console.log(accounts)
  res.render('list', { accounts, moment })
});

// 添加记录
router.get('/account/create', checkLoginMiddleware, function (req, res, next) {
  res.render('create')
})

// 新增记录
router.post('/account', checkLoginMiddleware, async (req, res) => {
  // 查看表单数据
  // 插入数据库
  let result = await AccountModel.create({
    ...req.body,
    // 通过 moment 将日期字符串转化为日期对象
    time: moment(req.body.time).toDate()
  })
  console.log(result)
  res.render('success', { msg: '添加成功哦~~', url: '/account' })
})

// 删除记录
router.get('/account/:id', checkLoginMiddleware, async (req, res) => {
  // 获取params的id参数
  let id = req.params.id
  // 删除
  let result = await AccountModel.deleteOne({ _id: id })
  if (result.deletedCount) {
    // 提醒
    res.render('success', { msg: '删除成功', url: '/account' })
  } else {
    res.status(500).send('删除失败~')
  }
})

module.exports = router;
